// 创建store对象
// 引入vuex并当做插件使用
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
  actions: {
    jia({ commit }, value) {
      // commit函数是用来触发mutation的函数
      // value是调用dispatch的第二个参数
      //   console.log('actions的加执行了', commit, value)
      commit('inc', value)
    },
  },
  //真正修改数据的方法
  mutations: {
    inc(state, payload) {
      // state 是数据
      // payload是调用commit的第二个参数
      //   console.log('mutations的inc执行了', state, payload)
      // 在vuex中可以直接修改state的值
      // vuex和redux都来源于flux架构
      // 其实vuex和redux的原理是一样的.既然原理一样.那么redux中数据不可以直接修改,按理vuex的数据也不可以直接修改.因为这里的state和redux新版中的state其实都是数据的代理
      state.count = state.count + payload
    },
  },
  // state就是初始值
  state: { count: 0 },
})

export default store
